// 'use client';

export const fallbackLng = 'cn'
export const languages = ['cn', 'en']
export const LANGUAGE_STORAGE_KEY = 'i18next-language'

/**
 * 检测浏览器语言并返回对应的i18n语言代码
 * 如果浏览器语言包含中文，返回cn，否则返回en
 */
export const detectBrowserLanguage = () => {
  if (typeof window === 'undefined') return fallbackLng;
  
  const browserLang = navigator.language.toLowerCase();
  
  // 如果浏览器语言包含中文 (zh-CN, zh-TW, zh-HK等)，则默认使用中文
  if (browserLang.includes('zh')) {
    return 'cn';
  }
  
  // 其他语言默认使用英文
  return 'en';
}

/**
 * 获取当前语言，优先级: 
 * 1. localStorage中保存的语言
 * 2. 浏览器语言 
 * 3. 默认语言(中文)
 */
export const getLanguage = () => {
  if (typeof window === 'undefined') return fallbackLng;
  
  // 优先使用localStorage中存储的语言
  try {
    const storedLang = localStorage.getItem(LANGUAGE_STORAGE_KEY);
    if (storedLang && languages.includes(storedLang)) {
      return storedLang;
    }
  } catch (error) {
    console.warn('Failed to read language from localStorage:', error);
  }
  
  // 否则根据浏览器语言检测
  return detectBrowserLanguage();
}

export const getOptions = () => {
  return {
    supportedLngs: languages,
    fallbackLng,
    fallbackNS: 'common',
    defaultNS: 'common',
  }
}